home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Collection of Tools & Utilities
/
Collection of Tools and Utilities.iso
/
turbovis
/
tvbugs20.zip
/
TVBUGS20.PAS
< prev
Wrap
Pascal/Delphi Source File
|
1994-03-29
|
49KB
|
1,570 lines
Borland Turbo Vision (Pascal) Bug List
Version 2.0
Last Updated: 3/1/94
Maintained by: Brad Williams
bwilliams@marvin.ag.uidaho.edu
*** This list is PASCAL TurboVision (TV) specific. For a C++
specific buglist, see the file \turbo-vision\faq\tvbugs.cpp
maintained by Marc Stern (stern@mble.philips.be) on the
anonymous ftp site vtucs.cc.vt.edu. Most bugs and fixes
presented have been discussed on the listserv TurbVis or the
Usenet group comp.os.msdos.programmer.turbovision. For
compiler specific bugs, see the bug lists TP6BUGSx.ZIP and
BP7BUGSx.ZIP maintained by Duncan Murdoch
(dmurdoch@mast.QueensU.CA) on garbo.uwasa.fi in the
\pc\turbopas directory. Many of the TV bugs and patches
listed are converted from a list formerly maintained by Juergen
Schlegelmilch. Great appreciation for his prior efforts.
This list contains bug fixes and enhancements to the TV
sources. These enhancements are obviously subjective and rely
most of the time on personal feelings of the posters about the
look and feel of their applications.
*** This is an unofficial list and is not a substitute for
*** Borland Technical or customer support which can be reached
*** at 800-331-0877 for registered Borland product owners.
*** Borland customer on-line service can be reached at
***
*** customer-support@borland.com
***
*** Online technical support is not available. Borland's
*** internet address for reporting bugs is
***
*** bugs@borland.com
All submissions determined to be "true" bugs will be forwarded
to Borland. The maintainer of this list, the authors of bug
fixes, and the vtucs.cc.vt.edu ftp site are not responsible for
the reliability of any information presented in this document.
*** Always make a backup of the source code file under a new
*** name prior making any changes to the original file.
Send all comments about bugs you have discovered and any
patches to the maintainer of this list or to the TurbVis
listserv for discussion. Please include a description of the
problem you are having and a small section of source code which
will duplicate the problem when compiled/run. All suggestions
for improvement of current patches are appreciated.
If you do not have Internet access, bugs and patches can be
submitted through Duncan Murdoch at:
CompuServe: 71631,122
Fidonet : DJ Murdoch at 1:249/99.5
or directly by postal delivery to:
Dr. Brad Williams
Research Office
University of Idaho
Moscow, Idaho 83844
How to Use This List
--------------------
At the beginning of this list is an index of new
problems/enhancements/questions or changes to old
problems/enhancements/questions in reverse chronological order.
This facilitates quick review for changes from previous
additions. Following is the list of
problems/enhancements/questions about TV in topical order.
They are discussed and source code patches referenced where
available. All source code patches in this file are placed at
the end in alphabetic order according to the procedure,
function, or object's name, then by individual object method.
For example,
AddToBuffer
TCollection.Init
TCollection.Load
TObject.Free
TProgram.Exec
If extensive files are required, the individual file will be
referenced under the appropriate problem/enhancement/question.
There are two possible methods for searching this document, by
topic under the PROBLEMS/QUESTIONS section or by procedure,
function, or object method name under the PATCHES section. All
PROBLEMS/QUESTIONS and PATCHES are cross-referenced. If you do
not find the topic/patch in one list, check the other. If you
still cannot find a solution look at the FAQ (TVPAS.FAQ) posted
at this site. If you still cannot determine a solution to your
problem, post a message to the listserv TurbVis or Usenet group
comp.os.msdos.programmer.turbovision.
---------------------------------------------------------------
CHRONOLOGICAL INDEX OF CHANGES TO THIS DOCUMENT
---------------------------------------------------------------
4-1-94 - Version 2.1
Views - 8 deleted - patch not required
1-1-94 - Version 1.0 of this list
Collections - 1
Editors - 8, 9
Help - 4, 5
Menus - 1
Views - 4, 5, 6, 7, 8
5-10-93 - First edition of this list
Drivers - 1
Editors - 1,2,3,4,5,6,7
Help - 1,2,3
Outlines - 1
Streams - 1
Views - 1,2,3
Windows - 1
---------------------------------------------------------------
PROBLEMS / ENHANCEMENTS / QUESTIONS
---------------------------------------------------------------
Collections
-----------
1. Problem : Program crashes when expanding a collection if a
heap error handler is installed to return Nil when
there is insufficient memory.
Version : 1.0, 2.0
Type : Bug
Reference : TCollection.SetLimit
TCollection.SetLimit does not allow a NIL result after memory
allocation failures. It assumes that if GetMem returns, then
it has succeeded. It will copy the old items on top of the
interrupt vector table at 0:0 and the program crashes or hangs.
Drivers
-------
1. Problem : Calling MoveBuf (unit Drivers) with an Attr
parameter of 0 would produce a corrupt draw
buffer.
Version : 1.0
Type : Bug
Reference : MoveBuf
There is a STOSB instruction where a MOVSB should be.
Editors
-------
1. Problem: When TFileEditor is Loaded from a stream it gives
unusual codes in the edit window and sometimes
hangs the system.
Version: 1.0
Type : Bug
Patch : TFileEditor.InitBuffer
TFileEditor.NewBuffer allocates 0 bytes, but does not set
BufSize to 0. If TFileEditor.Load loads a TFileEditor from a
stream, BufSize is read from the stream, too, and has its
old value. InitBuffer (called by TEditor.Load) ignores it,
so the content of the editor is loaded into memory, which
was never allocated -> the program will crash. So you can't
use TFileEditors, if you store and load the desktop.
2. Problem: When I try to "find" text in an editor window the
program crashes.
Version: 1.0
Type : Bug
Patch : IScan
In this assembly-routine the programmer forgot that MOV
does not set the flags. If the search string nearly matches
the last chars in the text, the routine runs over the end of
the text -- eventually replacing text! Here is an example:
Let '123456' be the text, and search for '45z'.
The routine scans the text '1234' for the '4' and finds it:
123456
45z
Then it compares the rest, finds the difference and skips
this occurence. CX (number the chars left in the text) is
now 0, but the routine just MOVs it back from DX, jumping
then with JNE. Now it is behind the end of text!
3. Problem: All scroll bar events are "stolen" by TMemo when
used in a TDialog with any other view that has a
scroll bar.
Version: 1.0
Type : Bug
Patch : TEditor.HandleEvent
This routine consumes all cmScrollBarChanged-events, without
testing the sender. With TEditor, everything is ok, but with
TMemo, there is a problem. TMemo cannot coexist in a
TDialog with other objects having scrollbars. The test, whe-
ther a cmScrollBarChanged-event is from one of its own
scroll bars is done in the local procedure CheckScrollBar,
but the HandleEvent routine clears the event in any case.
4. Problem : Unpredictable results after insufficient memory
when overwriting text.
Version : 1.0
Type : Bug
Patch : TEditor.InsertBuffer
Overwriting chars in an TEditor object is done in
TEditor.HandleEvent by marking the next char as block and
calling InsertBuffer via InsertText. This routine checks,
whether t